#include<bits/stdc++.h>
using namespace std;
using I=int;
using S=string;
const I N=3000;
pair<I,S>ppls[N];
vector<I>inds;
I ress[N];
I main(){
cin.tie(0)->sync_with_stdio(0);
I n;cin>>n;
for(I i=0;i<n;i++){
S nam;I a;cin>>nam>>a;
ppls[i]={a,nam};
}
sort(ppls,ppls+n);
for(I i=0;i<n;i++){
auto[a,nam]=ppls[i];
if(a>i)printf("-1"),exit(0);
inds.insert(inds.begin()+a,i);
}
for(I i=n-1;i>=0;i--)ress[inds[i]]=n-i;
for(I i=0;i<n;i++){
auto[a,nam]=ppls[i];
printf("%s %i\n",nam.c_str(),ress[i]);
}
}
1279A - New Year Garland | 1279B - Verse For Santa |
202A - LLPS | 978A - Remove Duplicates |
1304A - Two Rabbits | 225A - Dice Tower |
1660D - Maximum Product Strikes Back | 1513A - Array and Peaks |
1251B - Binary Palindromes | 768B - Code For 1 |
363B - Fence | 991B - Getting an A |
246A - Buggy Sorting | 884A - Book Reading |
1180A - Alex and a Rhombus | 445A - DZY Loves Chessboard |
1372A - Omkar and Completion | 159D - Palindrome pairs |
981B - Businessmen Problems | 1668A - Direction Change |
1667B - Optimal Partition | 1668B - Social Distance |
88B - Keyboard | 580B - Kefa and Company |
960A - Check the string | 1220A - Cards |
897A - Scarborough Fair | 1433B - Yet Another Bookshelf |
1283B - Candies Division | 1451B - Non-Substring Subsequence |